<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>异步处理方案</title>
</head>

<body>
    <script>
        // function request(url)
        // {
        //    return new Promise((resolve,reject)=>
        //    {
        //        resolve(url);
        //    }
        //    )
        // }

        // function getData()
        // {
        //    request("why").then((val)=>{
        //        console.log(val)
        //         request("kobe"+val).then((val)=>{
        //             console.log(val)
        //             request("curry"+val).then((val)=>
        //             {
        //                 console.log(val);
        //             })
        //         })
        //     })
        // }

        // getData();

        // function request(url)
        // {
        //    return new Promise((resolve,reject)=>
        //    {
        //        resolve(url);
        //    }
        //    )
        // }

        // function getData()
        // {
        //    request("why").then((val)=>{
        //     console.log(val);
        //     return request(val+"kobe");
        //    }).then((val)=>{
        //       console.log(val);
        //       return request(val+"curry");
        //    }).then((val)=>{
        //     console.log(val);
        //    })
        // }

        // getData();


        // function request(url) {
        //     return new Promise((resolve, reject) => {
        //         resolve(url);
        //     })
        // }

        // function* getData() {
        //     const ret1 = yield request("cq");

        //     const ret2 = yield request("kobe" + ret1);

        //     const ret3 = yield request("curry" + ret2);
        // }

        // let generator = getData();
        // generator.next().value.then((val) => {
        //     console.log(val);
        //     generator.next(val).value.then((val) => {
        //         console.log(val);
        //         generator.next(val).value.then((val) => {
        //             console.log(val);
        //         })
        //     })
        // });

        //最终方案：await语法糖
        function request(url) {
            return new Promise((resolve, reject) => {
                resolve(url);
            })
        }

       async function getData() {
            const ret1 = await request("cq");
            console.log(ret1);
            const ret2 =  await request("kobe" + ret1);
             console.log(ret2);
            const ret3 = await request("curry" + ret2);
            console.log(ret3);
        }

        getData();
        
        
    </script>
</body>

</html>